package com.example.hxds.bff.driver.feign;

import com.example.hxds.bff.driver.controller.form.*;
import com.example.hxds.common.util.R;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;


/**
 * 代理订单微服务接口
 */
@FeignClient(value = "hxds-odr")
public interface OdrServiceApi {

    /**
     * 查询司机今日业务数据
     * @param form
     * @return
     */
    @PostMapping("/order/searchDriverTodayBusinessData")
    R searchDriverTodayBusinessData(SearchDriverTodayBusinessDataForm form);


    /**
     * 接单
     * @param form
     * @return
     */
    @PostMapping("/order/acceptNewOrder")
    R acceptNewOrder(AcceptNewOrderForm form);


    /**
     * 查询司机当前订单
     * @param form
     * @return
     */
    @PostMapping("/order/searchDriverExecuteOrder")
    R searchDriverExecuteOrder(SearchDriverExecuteOrderForm form);


    /**
     * 查询司机当前订单
     * @param form
     * @return
     */
    @PostMapping("/order/searchDriverCurrentOrder")
    R searchDriverCurrentOrder(SearchDriverCurrentOrderForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderForMoveById")
    R searchOrderForMoveById(SearchOrderForMoveByIdForm form);


    /**
     * 司机到达目的地
     * @param form
     * @return
     */
    @PostMapping("/order/arriveStartPlace")
    R arriveStartPlace(ArriveStartPlaceForm form);


    /**
     *  司机开始行驶
     * @param form
     * @return
     */
    @PostMapping("/order/startDriving")
    R startDriving(StartDrivingForm form);


    /**
     * 修改订单状态
     * @param form
     * @return
     */
    @PostMapping("/order/updateOrderStatus")
    R updateOrderStatus(UpdateOrderStatusForm form);


    /**
     * 验证司机是否属于订单
     * @param form
     * @return
     */
    @PostMapping("/order/validDriverOwnOrder")
    R validDriverOwnOrder(ValidDriverOwnOrderForm form);


    /**
     * 查询结算单需要数据
     * @param form
     * @return
     */
    @PostMapping("/order/searchSettlementNeedData")
    R searchSettlementNeedData(SearchSettlementNeedDataForm form);


    /**
     *  修改结算单费用
     * @param form
     * @return
     */
    @PostMapping("/bill/updateBillFee")
    R updateBillFee(UpdateBillFeeForm form);


    /**
     * 查询司机订单结算单
     * @param form
     * @return
     */
    @PostMapping("/bill/searchReviewDriverOrderBill")
    R searchReviewDriverOrderBill(SearchReviewDriverOrderBillForm form);


    /**
     * 查询订单状态
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderStatus")
    R searchOrderStatus(SearchOrderStatusForm form);


    /**
     * 修改订单支付状态
     * @param form
     * @return
     */
    @PostMapping("/order/updateOrderAboutPayment")
    R updateOrderAboutPayment(UpdateOrderAboutPaymentForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderById")
    R searchOrderById(SearchOrderByIdForm form);


    /**
     * 查询订单评价
     * @param form
     * @return
     */
    @PostMapping("/comment/searchCommentByOrderId")
    R searchCommentByOrderId(SearchCommentByOrderIdForm form);


    /**
     * 查询订单分页记录
     * @param form
     * @return
     */
    @PostMapping("/order/searchDriverOrderByPage")
    R searchDriverOrderByPage(SearchDriverOrderByPageForm form);


}
